/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.ifrs.modelo;

import br.edu.ifrs.util.Conexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

/**
 *
 * @author IFRS-Restinga
 */
public class Elenco {

     private String cpf;
     private String nome;
     private String sexo;
     private String dtnasc;
     private String nacionalidade;
     private String dt1filme;
     private String papel;

    public Elenco() {
        this.cpf = "";;
        this.nome = "";
        this.sexo = "";
        this.dtnasc = "";;
        this.nacionalidade = "";
        this.dt1filme = "";
        this.papel = "";
    }

  


    public void inserir() throws Exception {
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
            // Conexão com o banco de dados
            con = Conexao.abrirConexao();

            // Criar o prepareStatement
            pstmt = con.prepareStatement("insert into Elenco (cpf, nome, sexo, dtnasc, nacionalidade, dt1filme, papel) values (?, ?, ?, ?, ?, ?, ?)");

            // Setar os parâmetros o prepareStatement
            pstmt.setString(1, getCpf());
            pstmt.setString(2, getNome());
            pstmt.setString(3, getSexo());
            pstmt.setString(4, getDtnasc());
            pstmt.setString(5, getNacionalidade());
            pstmt.setString(6, getDt1filme());
            pstmt.setString(7, getPapel());

            // Executar o prepareStatement
            pstmt.execute();
        } catch (Exception ex) {
            throw new Exception("Falha na Classe Elenco: " + ex.getMessage());
        } finally {
            pstmt.close();
            con.close();
        }
    }

    public void atualizar() throws Exception {
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
            // Conexão com o banco de dados
            con = Conexao.abrirConexao();

            // Criar o prepareStatement
            pstmt = con.prepareStatement("update Elenco set nome = ?, sexo = ?, dtnasc = ?, nacionalidade = ?, dt1filme = ?, papel = ? where cpf = ?");

            // Setar os parâmetros o prepareStatement
            pstmt.setString(1, getNome());
            pstmt.setString(2, getSexo());
            pstmt.setString(3, getDtnasc());
            pstmt.setString(4, getNacionalidade());
            pstmt.setString(5, getDt1filme());
            pstmt.setString(6, getPapel());
            pstmt.setString(7, getCpf());

            // Executar o prepareStatement
            pstmt.execute();
        } catch (Exception ex) {
            throw new Exception("Falha na Classe Elenco: " + ex.getMessage());
        } finally {
            pstmt.close();
            con.close();
        }
    }

    public void excluir() throws Exception {
        Connection con = null;
        PreparedStatement pstmt = null;
        try {
            // Conexão com o banco de dados
            con = Conexao.abrirConexao();

            // Criar o prepareStatement
            pstmt = con.prepareStatement("delete from Elenco where cpf = ?");

            // Setar os parâmetros o prepareStatement
            pstmt.setString(1, getCpf());

            // Executar o prepareStatement
            pstmt.execute();
        } catch (Exception ex) {
            throw new Exception("Falha na Classe Elenco: " + ex.getMessage());
        } finally {
            pstmt.close();
            con.close();
        }
    }

    public Elenco[] consultar() throws Exception {
        Connection con = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        ArrayList lista = new ArrayList();
        try {
            // Conexão com o banco de dados
            con = Conexao.abrirConexao();

            // Criar o prepareStatement
            pstmt = con.prepareStatement("select * from Elenco order by nome");
            // Setar os parâmetros o prepareStatement
            // Executar o prepareStatement
            rs = pstmt.executeQuery();
            // Gerar um array de cliente
            while (rs.next() == true) {
                Elenco e;
                e = new Elenco();
                e.setCpf(rs.getString("cpf"));
                e.setNome(rs.getString("nome"));
                e.setSexo(rs.getString("sexo"));
                e.setDtnasc(rs.getString("dtnasc"));
                e.setNacionalidade(rs.getString("nacionalidade"));
                e.setDt1filme(rs.getString("dt1filme"));
                e.setPapel(rs.getString("papel"));

                lista.add(e);
            }
        } catch (Exception ex) {
            throw new Exception("Falha na Classe Elenco: " + ex.getMessage());
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pstmt != null) {
                pstmt.close();
            }
            if (con != null) {
                con.close();
            }
        }

        return (Elenco[]) lista.toArray(new Elenco[0]);
    }

    public void buscarDados() throws Exception {
        Connection con = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            // Conexão com o banco de dados
            con = Conexao.abrirConexao();

            // Criar o prepareStatement
            pstmt = con.prepareStatement("select * from Elenco where cpf = ? ");
            // Setar os parâmetros o prepareStatement
            pstmt.setString(1, cpf);
            // Executar o prepareStatement
            rs = pstmt.executeQuery();
            // Gerar um array de cliente
            if (rs.next() == true) {
                this.setCpf(rs.getString("cpf"));
                this.setNome(rs.getString("nome"));
                this.setSexo(rs.getString("sexo"));
                this.setDtnasc(rs.getString("dtnasc"));
                this.setNacionalidade(rs.getString("nacionalidade"));
                this.setDt1filme(rs.getString("dt1filme"));
                this.setPapel(rs.getString("papel"));
            }
        } catch (Exception ex) {
            throw new Exception("Falha na Classe Elenco: " + ex.getMessage());
        } finally {
            if (rs != null) {
                rs.close();
            }
            if (pstmt != null) {
                pstmt.close();
            }
            if (con != null) {
                con.close();
            }
        }
    }

    /**
     * @return the cpf
     */
    public String getCpf() {
        return cpf;
    }

    /**
     * @param cpf the cpf to set
     */
    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the sexo
     */
    public String getSexo() {
        return sexo;
    }

    /**
     * @param sexo the sexo to set
     */
    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    /**
     * @return the dtnasc
     */
    public String getDtnasc() {
        return dtnasc;
    }

    /**
     * @param dtnasc the dtnasc to set
     */
    public void setDtnasc(String dtnasc) {
        this.dtnasc = dtnasc;
    }

    /**
     * @return the nacionalidade
     */
    public String getNacionalidade() {
        return nacionalidade;
    }

    /**
     * @param nacionalidade the nacionalidade to set
     */
    public void setNacionalidade(String nacionalidade) {
        this.nacionalidade = nacionalidade;
    }

    /**
     * @return the dt1filme
     */
    public String getDt1filme() {
        return dt1filme;
    }

    /**
     * @param dt1filme the dt1filme to set
     */
    public void setDt1filme(String dt1filme) {
        this.dt1filme = dt1filme;
    }

    /**
     * @return the papel
     */
    public String getPapel() {
        return papel;
    }

    /**
     * @param papel the papel to set
     */
    public void setPapel(String papel) {
        this.papel = papel;
    }
}
